﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLBH.DataModel;

namespace QLBH.Model.Controller
{
    public class KhachHangController : QLBHEntityBase<KHACHHANG>
    {
        public static QLBHEntityBase<KHACHHANG> GetInstance()
        {
            return new KhachHangController();
        } 
        public override KHACHHANG Add(KHACHHANG entity)
        {
            if (FindBy(it => it.KHCODE == entity.KHCODE).FirstOrDefault() != null)
            {
                throw new Exception("Mã KH đã tồn tại!");
            }            
            if (!String.IsNullOrEmpty(entity.EMAIL))
            {
                if (FindBy(it => it.EMAIL == entity.EMAIL).FirstOrDefault() != null)
                {
                    throw new Exception("Email đã được sử dụng!");
                }
            }
            return base.Add(entity);
        }
        public override KHACHHANG Edit(KHACHHANG entity)
        {
            if (FindBy(it => it.KHCODE == entity.KHCODE && it.KHID!=entity.KHID).FirstOrDefault() != null)
            {
                throw new Exception("Mã KH đã tồn tại!");
            }
            if (!String.IsNullOrEmpty(entity.EMAIL))
            {
                if (FindBy(it => it.EMAIL == entity.EMAIL && it.KHID != entity.KHID).FirstOrDefault() != null)
                {
                    throw new Exception("Email đã được sử dụng!");
                }
            }
            return base.Edit(entity);
        }
    }
}
